Managing authorization codes from multiple sources

ABSTRACT

The present disclosure describes apparatus, systems and methods in which a first data storage is maintained for a first group of authorization codes, for example those associated with a local POS system, and second data storage, logically separate from the first data storage, is maintained for a second group of authorization codes, such as those associated with a remote or online sales system. Access control is achieved by checking a received authorization code for validity against one or both groups of authorization codes, without needing to integrate different code assignment systems or different sales systems with one another. The technology has particular utility for automated car wash systems, although it is not limited thereto, and embodiments of the technology may be retrofit to existing car wash control interfaces.

TECHNICAL FIELD

The present disclosure relates to access control applications, and moreparticularly to access control applications using authorization codes.

BACKGROUND

Automated car wash systems represent one common application whereauthorization codes are used to control access. For example, a gasstation may have an automated car wash with a keypad positioned at theentrance, and may have a point-of-sale (POS) system which can issueauthorization codes to customers to be entered using the keypad. In atypical embodiment, when an authorization code is entered at the keypad,a microcontroller will communicate with a data storage maintained by thePOS system to check whether the keyed authorization code is valid. Ifthe keyed authorization code is valid, access will be granted and thecar wash procedure will be initiated.

It is desirable for customers to be able to purchase car wash servicesremotely, such as online via a computer or mobile device such as asmartphone, since such electronic commerce (“e-commerce”) is widelyaccepted by consumers as a convenient way to order goods and services.While those skilled in the art can readily develop an e-commerceplatform that will accept payment and issue authorization codes, thereare difficulties associated with integrating such an e-commerce platformwith the relevant POS systems and/or car wash control systems.

SUMMARY

Broadly speaking, the present disclosure describes apparatus, systemsand methods in which a first data storage is maintained for a firstgroup of authorization codes, for example those associated with a localPOS system, and second data storage, logically separate from the firstdata storage, is maintained for a second group of authorization codes,such as those associated with a remote or online sales system. Accesscontrol is achieved by checking a received authorization code forvalidity against one or both groups of authorization codes, withoutneeding to integrate different code assignment systems or differentsales systems with one another.

In one aspect, a control interface for a car wash comprises a car washcontroller coupled to a plurality of car wash elements for controllingthe car wash elements, a keypad, and a first microcontroller. The firstmicrocontroller is coupled to the keypad, to the car wash controller andto a first data storage containing a first group of valid authorizationcodes. The first microcontroller is configured to receive a keyedauthorization code from the keypad and communicate with the first datastorage to compare the keyed authorization code to the first group ofvalid authorization codes. Responsive to the keyed authorization codematching one of the valid authorization codes in the first group ofvalid authorization codes, the first microcontroller will instruct thecar wash controller to initiate a car wash according to the matched oneof the valid authorization codes in the first group of validauthorization codes. The control interface further comprises anadditional input device and a second microcontroller coupled to theadditional input device. The second microcontroller is coupled to thecar wash controller and to a second data storage containing a secondgroup of valid authorization codes. The second microcontroller isconfigured to receive an authorization code from the additional inputdevice and communicate with the second data storage to compare thereceived authorization code to the second group of valid authorizationcodes. Responsive to the received authorization code matching one of thevalid authorization codes in the second group of valid authorizationcodes, the second microcontroller will instruct the car wash controllerto initiate a car wash according to the matched one of the validauthorization codes in the second group of valid authorization codes.

The additional input device may be one of a second keypad, a barcodereader, and a wireless receiver for receiving wireless communicationsignals.

In some embodiments, the second microcontroller is coupled directly tothe car wash controller. In other embodiments, the secondmicrocontroller is coupled indirectly to the car wash controller. Forexample, the second microcontroller may be coupled indirectly to the carwash controller by the second microcontroller being coupled to the firstmicrocontroller, or the first microcontroller may be coupled to the carwash controller indirectly by the first microcontroller being coupled tocontrol terminals on a control board, with the control board beingcoupled to the car wash controller, and the second microcontroller maybe coupled to the car wash controller by being coupled to the controlterminals on the control board in parallel with the firstmicrocontroller.

In another aspect, a control interface for a car wash comprises a carwash controller coupled to a plurality of car wash elements forcontrolling the car wash elements, a keypad and a first microcontroller.The first microcontroller is coupled to the keypad, to the car washcontroller, to a first data storage containing a first group of validauthorization codes and to a second data storage containing a secondgroup of valid authorization codes. The first microcontroller isconfigured to receive a keyed authorization code from the keypad anddetermine whether the keyed authorization code is associated with thefirst group of valid authorization codes or the second group of validauthorization codes. Responsive to a determination that the keyedauthorization code is associated with the first group of validauthorization codes, the first microcontroller will communicate with thefirst data storage to compare the keyed authorization code to the firstgroup of valid authorization codes. Responsive to the keyedauthorization code matching one of the valid authorization codes in thefirst group of valid authorization codes, the first microcontroller willinstruct the car wash controller to initiate a car wash according to thematched one of the valid authorization codes in the first group of validauthorization codes.

In some embodiments, the first microcontroller is further configured to,responsive to a determination that the keyed authorization code isassociated with the second group of valid authorization codes,communicate with the second data storage to compare the keyedauthorization code to the second group of valid authorization codes.Responsive to the keyed authorization code matching one of the validauthorization codes in the second group of valid authorization codes,the first microcontroller will instruct the car wash controller toinitiate a car wash according to the matched one of the validauthorization codes in the second group of valid authorization codes.

In some embodiments, the first microcontroller is coupled to a secondmicrocontroller, and the second microcontroller is coupled to the carwash controller. In such embodiments, the first microcontroller may befurther configured to, responsive to a determination that the keyedauthorization code is associated with the second group of validauthorization codes, transmit the keyed authorization code to the secondmicrocontroller. The second microcontroller is configured to, responsiveto receiving the keyed authorization code from the firstmicrocontroller, communicate with the second data storage to compare thekeyed authorization code to the second group of valid authorizationcodes. Responsive to the keyed authorization code matching one of thevalid authorization codes in the second group of valid authorizationcodes, the second microcontroller will instruct the car wash controllerto initiate a car wash according to the matched one of the validauthorization codes in the second group of valid authorization codes.

In some embodiments, the determination that the keyed authorization codeis associated with the second group of valid authorization codes resultsfrom the keyed authorization code failing to match any of the validauthorization codes in the first group of valid authorization codes. Inother embodiments, the first microcontroller is configured to determinewhether the keyed authorization code is associated with the first groupof valid authorization codes or the second group of valid authorizationcodes according to a format of the keyed authorization code. In stillfurther embodiments, the first microcontroller is configured todetermine whether the keyed authorization code is associated with thefirst group of valid authorization codes or the second group of validauthorization codes according to an indicator signal.

In some embodiments, the control interface may further comprise anadditional input device coupled to the microcontroller, wherein thefirst microcontroller is configured to determine whether the keyedauthorization code is associated with the first group of validauthorization codes or the second group of valid authorization codesbased on the input device used wherein an authorization code receivedfrom the keypad is associated with the first group of validauthorization codes and an authorization code received from theadditional input device is associated with the second group of validauthorization codes.

In a further aspect, a method for controlling a car wash comprisesreceiving an authorization code and determining whether theauthorization code is associated with a first group of validauthorization codes stored in a first storage or a second group of validauthorization codes stored in a second storage. Responsive to adetermination that the authorization code is associated with the firstgroup of valid authorization codes, the method compares theauthorization code to the first group of valid authorization codes, and,responsive to the authorization code matching one of the validauthorization codes in the first group of valid authorization codes, themethod initiates the car wash according to the matched one of the validauthorization codes in the first group of valid authorization codes.Responsive to a determination that the authorization code is associatedwith the second group of valid authorization codes, the method comparesthe authorization code to the second group of valid authorization codes,and responsive to the authorization code matching one of the validauthorization codes in the second group of valid authorization codes,the method initiates the car wash according to the matched one of thevalid authorization codes in the second group of valid authorizationcodes.

In some embodiments, determining whether the authorization code isassociated with a first group of valid authorization codes stored in afirst storage or a second group of valid authorization codes stored in asecond storage comprises determining a format of the authorization code.In other embodiments, determining whether the authorization code isassociated with a first group of valid authorization codes stored in afirst storage or a second group of valid authorization codes stored in asecond storage is based on an input device via which the authorizationcode was received.

In yet a further aspect, a method for controlling a car wash comprisesreceiving an authorization code and comparing the authorization code tothe first group of valid authorization codes stored in a first storage.Responsive to the authorization code matching one of the validauthorization codes in the first group of valid authorization codes, themethod initiates the car wash according to the matched one of the validauthorization codes in the first group of valid authorization codes.Responsive to a determination that the authorization code fails to matchany of the valid authorization codes in the first group of validauthorization codes, the method compares the authorization code to thesecond group of valid authorization codes. Responsive to theauthorization code matching one of the valid authorization codes in thesecond group of valid authorization codes, the method initiates the carwash according to the matched one of the valid authorization codes inthe second group of valid authorization codes.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features will become more apparent from the followingdescription in which reference is made to the appended drawings wherein:

FIG. 1 is a schematic block diagram showing an exemplary prior artcontrol interface for a car wash;

FIG. 2 is a schematic block diagram showing a first exemplary controlinterface for a car wash according to an aspect of the presentdisclosure;

FIG. 3 is a schematic block diagram showing a second exemplary controlinterface for a car wash according to an aspect of the presentdisclosure;

FIG. 4 is a schematic block diagram showing a third exemplary controlinterface for a car wash according to an aspect of the presentdisclosure;

FIG. 5 is a flow chart showing a first exemplary method for controllinga car wash; and

FIG. 6 is a flow chart showing a second exemplary method for controllinga car wash.

DETAILED DESCRIPTION

Reference is now made to FIG. 1, which is a schematic block diagramshowing an exemplary prior art control interface 100 for a car wash 102.The car wash 102 is an automated, drive-through car wash of conventionaldesign, and comprises a plurality of car wash elements 104 such assprayers, rotating brushes, dryers, and the like (brushes may be omittedin the case of a so-called “touchless” car wash). In the exemplaryembodiment, the car wash 102 is a “tunnel wash” in which the washelements 104 are disposed inside a tunnel structure 106 and a conveyor108 is used to move the vehicle 110 through the tunnel structure 106,for example by gripping a wheel while the vehicle 110 is in neutralgear. Although the colloquial term “car wash” is used, the tunnelstructure and wash elements will typically accommodate other vehiclessuch as pick-up trucks, minivans, SUVs, etc. and as such the term “carwash” does not imply a limitation to cars.

The control interface 100 is coupled to a car wash controller 120, whichin turn is coupled to the car wash elements 104 for controlling the carwash elements 104 in known manner; the car wash controller 120 is alsoconventional. The control interface 100 may be, for example, one ofthose offered by Exact One Company, having an address at 4631 ManitobaRoad SE, Calgary, Alberta T2G 4B9 Canada. The car wash controller 120may be part of a control cabinet, for example the Washworld RazorUltimate Control Cabinet offered by Washworld, Inc. having an address at2222 American Blvd., DePere, Wis. 54115 U.S.A. and the car washcontroller 120 may be, for example, an Allen Bradley Micrologic 1400Programmable Logic Controller (PLC) available from Rockwell Automation,having an address at 1201 South Second Street, Milwaukee, Wis.53204-2496 U.S.A.

The control interface 100 also includes a keypad 122 and amicrocontroller 124. In the illustrated embodiment, the keypad 122 is aphysical keypad including buttons for the numbers 1 to 9; although notshown in the figures the keypad may include additional buttons, such asbuttons for the “pound” (#) and “star” (*) symbols. The keypad 122 mayhave other configurations, such as alphanumeric, and may alternativelybe a touch screen keypad rather than including physical buttons, inwhich case the keyboard would be integrated with a display. Themicrocontroller 124 is coupled to the keypad 122 to receive signalstherefrom in known manner, and the microcontroller 124 is also coupledto the car wash controller 120 to send signals to, and receive signalsfrom, the car wash controller 120. For example, the microcontroller 124can instruct the car wash controller 120 to initiate a car washsequence, and can receive a message from the car wash controller 120indicating that the car wash 102 is “in use” or “out of service”. In theillustrated embodiment, the microcontroller 124 is coupled to the keypad122 and the car wash controller 120 by way of a control board 126. Inparticular, the microcontroller 124 is coupled to circuitry on thecontrol board 126 and the keypad 122 and the car wash controller 120 arecoupled by wire or other suitable connection to respective terminals128, 130 on the control board 126. While FIG. 1 shows four terminals130, this is merely one exemplary embodiment and a control board mayhave more or fewer terminals for communicating with a car washcontroller. The control interface 100 may also include a display 132coupled to the microcontroller 124 by way of a corresponding terminal134 on the control board 126. The control interface 100 may optionallyalso include other components (not shown), such as a bill acceptor, coinacceptor, credit card acceptor, receipt printer and related hardware, aswell as buttons for selecting a wash type. One commonly used type ofcontrol interface is the “Wash Select II”, offered by Unitec, having anaddress at 7125 Troy Hill Drive, Elkridge, Md. 21075 U.S.A. Typically,in a drive-through car wash such as a “tunnel wash”, the keypad 122,microcontroller 124 and control board 126 are located in a housingcarried by a post at the entrance to the tunnel structure 106 so that auser can access the keypad 122 through the window of the vehicle 110.For a “self serve” car wash, the user would park and exit their vehicleto access a pay station. The car wash controller 120 need not be locatedin the housing with the keypad 122, microcontroller 124 and controlboard 126, but may be located elsewhere. For example, the car washcontroller 120 may be located in the car wash structure and coupled tothe microcontroller 124 via wires.

The microcontroller 124 is further coupled to a data storage 136 via acorresponding terminal 138 on the control board 126. The data storage136 stores a group of valid authorization codes 140. Where more than onetype of car wash service is offered (e.g. “basic”, “deluxe”, “ultimate”,etc.), each valid authorization code will be associated with aparticular type of car wash service. In the illustrated embodiment, thedata storage 136 forms part of a point-of-sale (POS) system 142 at thefacility where the car wash 102 is located, and the microcontroller 124may be coupled to the data storage 136 indirectly via a computer system(not shown) that administers the data storage 136, for example as partof the POS system 142. For example, if the car wash 102 is located at agas station, the POS system 142 may be configured to allow the cashregister and pay-at-the-pump fuel pumps to sell car wash services byprinting an authorization code for the customer, with the validauthorization codes 140 being stored in the data storage 136. The datastorage 136 may comprise multiple pieces of hardware (e.g. more than onedisk drive) which may be located at the same site as the car wash 102and POS system 142 or elsewhere, or may be geographically dispersed inmultiple locations.

The microcontroller 124 is configured to receive a keyed authorizationcode from the keypad 122 and communicate with the data storage 136 tocompare the keyed authorization code to the group of valid authorizationcodes 140. For example, where the microcontroller 124 is coupled to thedata storage 136 via the computer system that administers the datastorage 136 (e.g. a computer system forming part of the POS system), themicrocontroller 124 may send the keyed authorization code to thecomputer system for the computer system to compare to the group of validauthorization codes 140.

In response to the keyed authorization code matching one of the validauthorization codes in the group of valid authorization codes 140, themicrocontroller 124 will instruct the car wash controller 120 toinitiate a car washing sequence according to the matched authorizationcode. For example, if the matched authorization code corresponds to a“basic” car wash, the microcontroller 124 will instruct the car washcontroller 120 to initiate the “basic” car washing sequence, and if thematched authorization code corresponds to a “deluxe” car wash, themicrocontroller 124 will instruct the car wash controller 120 toinitiate the “deluxe” car washing sequence.

Thus, a user may purchase a car wash service, for example at the gaspump if paying at the pump, or at the cash register, and be given areceipt which includes an authorization code. The user may then drivehis or her vehicle 110 to the entrance of the tunnel structure 106 andenter the authorization code using the keypad 122 to initiate the carwash service. After the keyed authorization code has been matched, thematched authorization code can be de-authorized, deactivated or removedfrom the group of valid authorization codes 140.

Reference is now made to FIG. 2, which is schematic block diagramshowing first exemplary control interface 200 according to an aspect ofthe present disclosure. As will be explained further below, the controlinterface 200 may be implemented as a retrofit to the control interface100 shown in FIG. 1, and hence the same reference numerals are used torefer to the components of the control interface 100 shown in FIG. 1.Details of the car wash 102 shown in FIG. 1 are omitted from FIG. 2 forsimplicity of illustration.

Because the control interface 200 shown in FIG. 2 includes a secondmicrocontroller 260 and second control board 226, the microcontroller100 of the control interface 100 shown in FIG. 1 is now referred to asthe “first” microcontroller 124 and the control board 126 is referred toas the “first” control board 126. Similarly, the control interface 200shown in FIG. 2 includes a second data storage 264 storing a secondgroup of valid authorization codes 266, so the data storage 136 andgroup of valid authorization codes 140 shown in FIG. 1 are now referredto as the “first” data storage 136 and the “first” group of validauthorization codes 140.

The control interface 200 shown in FIG. 2 comprises an additional inputdevice for receiving an authorization code (i.e. in addition to thekeypad 122), with the second microcontroller 260 coupled to theadditional input device. In the illustrated embodiment, the additionalinput device is a second keypad 262. Specifically, the secondmicrocontroller 260 is coupled to circuitry on its own control board 226and is coupled to the second keypad 262 via a terminal 228 and to anoptional second display 232 via a terminal 234. In other embodiments,the additional input device may take other forms, for example a barcodereader or a wireless receiver for receiving wireless communicationsignals. Where the additional input device is a barcode reader, it maytake the form of a conventional barcode reader, or it may be a camerasuch as a CMOS or CCD camera coupled to a processor (either the secondmicrocontroller 260 or a separate processor) adapted to process theimage to read the barcode. In the latter case, the barcode may be aconventional barcode, or may be a QR code. Where the additional inputdevice is a wireless receiver, it may, for example, be a wirelessreceiver for near field communication (NFC) signals, infrared signals orBluetooth communications and may be able to transmit as well as receive.Other suitable input devices may also be used.

The second microcontroller 260 is also coupled to the car washcontroller 120. In the illustrated embodiment, the secondmicrocontroller 260 is coupled to the car wash controller 120indirectly; the second microcontroller 260 is coupled to the car washcontroller 120 by control terminals 230 on the second control board 226being coupled to the control terminals 130 on the first control board126 in parallel with the first microcontroller 124. Because the secondmicrocontroller 260 is coupled to the car wash controller 120 inparallel with the first microcontroller 124 via the control terminals130 on the first control board 126, the car wash controller 120 willrespond identically to signals received via the control terminals 130,such as instructions to initiate a “basic” car wash sequence or a“deluxe” car wash sequence, whether those signals originate from thefirst microcontroller 124 or the second microcontroller 260. In otherembodiments, the second microcontroller 260 may be otherwise coupled tothe car wash controller 120.

The second microcontroller 260 is coupled by way of a terminal 238 to asecond data storage 264 storing a second group of valid authorizationcodes 266. Like the first data storage 136, the second data storage 264may comprise multiple pieces of hardware (e.g. more than one disk drive)which may be located at the same site as the car wash 102 and POS system142 or elsewhere, or may be geographically dispersed in multiplelocations. As shown schematically in FIG. 2, the second data storage 264is logically separate from the first data storage 136, as shown by thedashed line, and will typically be physically separate as well. However,it is contemplated that in some embodiments, the second data storage 264and the first data storage 136 may reside on a common physical storagemedium or media (e.g. the same disk drive(s)) while remaining logicallyseparate from one another.

In the illustrated embodiment, the second microcontroller 260 is coupledto the second data storage 264 via a terminal 238 and one or morecomputer networks 268, such as an Internet connection. Details of therelevant connection hardware and software for network connection arewithin the capability of one skilled in the art and are not describedfurther. The second microcontroller 260 is configured to receive anauthorization code (a “received authorization code”) from the additionalinput device, in this case the second keypad 262, and to communicatewith the second data storage 262 to compare the received authorizationcode to the second group of valid authorization codes 266. In responseto the received authorization code matching one of the validauthorization codes in the second group of valid authorization codes266, the second microcontroller 260 will instruct the car washcontroller 120 to initiate a car wash according to the matched one ofthe valid authorization codes in the second group of valid authorizationcodes 266. Once the received authorization code has been matched, thematched authorization code can be de-authorized, deactivated or removedfrom the second group of valid authorization codes 266.

Adding a second data storage 264 that is logically separate from thefirst data storage 136 allows for the sale of car wash services viasales channels other than the sales channel with which the first datastorage 136 is associated, without the need to integrate those saleschannels into the sales channel with which the first data storage 136.For example, in the illustrated embodiment, the first data storage 136forms part of a POS system 142 at the facility where the car wash 102 islocated (e.g. a gas station), and the second data storage 264 isassociated with an online (e.g. Internet-based) sales system 270 forordering car wash services. The use of a second data storage 264 that islogically separate from the first data storage 136 allows authorizationcodes associated with the online sales system 270 to be handledseparately from authorization codes associated with the POS system 142,without any need to directly integrate the online sales system 270 withthe POS system 142. Moreover, the respective control interfaces 200 fora plurality of geographically dispersed car washes 102 may be coupled toa single second data storage 264. This allows the second group of validauthorization codes 266 stored in the second data storage 264 to be usedto activate one of a plurality of different geographically dispersed carwashes 102, or one of a plurality of car washes having different typesof POS systems that are not necessarily compatible with one another(e.g. from different manufacturers).

For example, consider a chain of gas stations marketed under a commonbrand, where some gas stations have automatic car washes. The operatorsof the chain of gas stations may wish to implement an online salessystem 270, for example by way of a mobile website or native mobileapplication enabling customers to use a smartphone 272 or computer 274to locate a nearby gas station that has a car wash and purchase thedesired car wash services online. The online sales system 270 may beconfigured to, for each order for car wash services, generate a validauthorization code and store it in the second data storage 264,resulting in a second group of valid authorization codes 266. Thoseactivation codes can be used to activate the car wash 102 at anylocation having a control interface 200 as shown in FIG. 2 that issuitably coupled to the second data storage 264. As a result, there isno need to link the activation code to the car wash 102 where it isintended to be used, or communicate the activation code to the POSsystem 142 at that location. Instead, the POS system 142 and the onlinesales system 270 would operate in parallel, with authorization codesassociated with the POS system 142 being stored in the first datastorage 136 and authorization codes associated with the online salessystem 270 being stored in the second data storage 264. Because thesecond group of valid authorization codes 266 stored in the second datastorage 264 may be used to activate one of a plurality of differentgeographically dispersed car washes 102, a customer who had purchasedcar wash services through the online sales system 270 could even changehis or her plans and use the authorization code to activate a car washat a different location than he or she originally intended.

Authorization codes obtained using the POS system 142 may be considered“local” authorization codes since they are obtained locally at thelocation associated with the POS system 142 and are often limited tothat location. Authorization codes obtained using the online salessystem 270 may be considered “remote” or “global” authorization codes,since they can be obtained elsewhere than the POS system 142 and can beused at any location where the control interface 200 is suitably coupledto the second data storage 264. An authorization code obtained using theonline sales system 270 may be “remote” but not “global”, since it mightbe ordered remotely from the physical location of the car wash 102 butbe limited to the car wash 102 at that location. Conversely, anauthorization code obtained using the online sales system 270 may be“global” but not “remote”, since it might be ordered (for example) froman Internet-connected kiosk at the location of one of a plurality of carwashes with which it can be used.

Where the additional input device is a second keypad, the remote orglobal authorization code may be communicated to the customer in ahuman-perceptible form, such as via e-mail, text message, voice message,returned web page or other screen display, etc. The user could thendrive up to the entrance to the tunnel structure 106 and enter theauthorization code using the second keypad 262. The control interface200 may have posted information associated therewith (e.g. a sign)indicating that if the car wash service was purchased using the POSsystem 142 at the location (e.g. from a gas pump or cash register) thefirst keypad 122 should be used and that if the car wash service waspurchased using the online sales system 270, the second keypad 262should be used. If the additional input device is a barcode reader orwireless receiver, the authorization code would be communicated in aform readable by the additional input device.

A car wash control interface 100 as shown in FIG. 1 can be retrofit tobecome a car wash control interface 200 as shown in FIG. 2 as follows.The housing containing the first microcontroller 124 and control board126 is opened, and the second microcontroller 260 and second controlboard 226 are placed inside. The terminals 230 on the second controlboard 226 are then wired to the terminals 130 on the first control board126 (which are already wired to the car wash controller 120) and coupledto the power source in the housing. Holes can be drilled in the housingto allow the second microcontroller 260 to be wired, via the secondcontrol board 226, to the second keypad 262 (or other input device) andto the network hardware (not shown) for enabling the secondmicrocontroller 260 to communicate with the second data storage 264; thenetwork hardware may be located outside the housing, for example insidea building. Alternatively, the second microcontroller 260 may be coupledto a wireless network device, such as a wireless modem, which is locatedwithin the housing and communicates with additional network hardwarelocated outside of the housing. The second keypad 262 (or other inputdevice) will typically be secured in its own separate housing, which maybe attached to the housing containing the first microcontroller 124 andcontrol board 126, for example by bolting or welding. The drilled holesand any cabling can be suitably weatherproofed as is known in the art.

Other systems, apparatus and methods for implementing the concept ofusing a first data storage storing a first group of valid authorizationcodes and a second data storage storing a second group of validauthorization codes will now be described; certain details which will beapparent from the foregoing description are not be repeated indescribing these other systems, apparatus and methods.

Reference is now made to FIG. 3, which shows another exemplary controlinterface 300 for a car wash 102. The control interface 300 shown inFIG. 3 is in certain respects similar to the control interface 200 shownin FIG. 2, with like reference numerals denoting like features. Thus,the control interface 300 comprises a car wash controller 120 coupled toa plurality of car wash elements, a keypad 122 and a singlemicrocontroller 380. Details of the car wash 102 shown in FIG. 1 areagain omitted for simplicity of illustration. The control interface 100shown in FIG. 1 may be converted to the control interface 300 shown inFIG. 3 by, for example, replacing the microcontroller 124 and controlboard 126 in the control interface 100 shown in FIG. 1 with a newmicrocontroller 380 and control board 382, or reprogramming themicrocontroller 124 to become the microcontroller 380 and coupling thenew/reprogrammed microcontroller 380 to the car wash controller 120,keypad 122, first data storage 136 and second data storage 264.

The microcontroller 380 is coupled to circuitry on a control board 382,and is coupled by way of terminals 328, 330, 334 to the keypad 122, carwash controller 120 and display 132, respectively. The microcontroller380 is also coupled by way of terminal 338 to a first data storage 136containing a first group of valid authorization codes 140 and viaterminal 384 and computer network(s) 268 to a second data storage 264containing a second group of valid authorization codes 266. The firstdata storage 136 forms part of a POS system 142 at the facility (e.g. agas station) where the car wash 102 is located. The microcontroller 380is configured to communicate with the first data storage 136 via the POSsystem 142. The particular configuration of the microcontroller 380 andcontrol board 382 will depend on the particular POS system 142 withwhich they are to communicate (i.e. depending on the manufacturer,model, etc. of the relevant components of the POS system 142).Configuration of the microcontroller 380 and control board 382 is withinthe capability of one skilled in the art when the parameters of therelevant POS system 142 are known. The second data storage 264 isassociated with an online (e.g. Internet-based) sales system 270 forordering car wash services. The second data storage 264 is logicallyseparate from the first data storage 136, and is typically physicallyseparate as well.

The microcontroller 380 is configured to receive a keyed authorizationcode from the keypad 122 and determine whether the keyed authorizationcode is associated with the first group of valid authorization codes 140or the second group of valid authorization codes 266. Determiningwhether the keyed authorization code is associated with the first groupof valid authorization codes 140 or the second group of validauthorization codes 266 may be carried out in a number of differentways.

One approach is for the microcontroller 380 to first check whether thekeyed authorization code matches any valid authorization code in thefirst group of valid authorization codes 140 and, if the keyedauthorization code fails to match any of the valid authorization codesin the first group of valid authorization codes 140, determine that thekeyed authorization code is associated with the second group of validauthorization codes 266. In other words, the microcontroller 380“assumes” that if the keyed authorization code does not match any localauthorization code then it is likely a remote or global authorizationcode. Alternatively, the microcontroller 380 may first check whether thekeyed authorization code matches a remote or global authorization code,however, as a practical matter it is expected that there will be asubstantially larger number of remote or global authorization codes thanlocal authorization codes such that it will be more efficient to firstcheck whether the keyed authorization code matches a local authorizationcode.

Another approach is for the microcontroller 380 to be configured todetermine whether the keyed authorization code is associated with thefirst group of valid authorization codes 140 or the second group ofvalid authorization codes 266 according to the format of the keyedauthorization code. For example, the length of the keyed characterstring, the first character in the string, the last character in thestring or some combination thereof may be used to designate whether thekeyed authorization code is associated with the first group of validauthorization codes 140 or the second group of valid authorization codes266.

Still another approach is for the microcontroller 380 to be configuredto determine whether the keyed authorization code is associated with thefirst group of valid authorization codes 140 or the second group ofvalid authorization codes 266 according to an indicator signal. Forexample, the keypad 122 may be provided with an additional button (notshown) with a label such as “press here if you purchased your car washonline”, which button will provide an indicator signal to themicrocontroller 380 indicating that the keyed authorization code isassociated with the second group of valid authorization codes 266.Similarly, a special sequence of keypad buttons, such as two “pound” (#)or two “star” (*) buttons, may be used as an indicator signal.

Yet another approach is to provide an additional input device 386 (shownin dashed lines), such as a second keypad, a barcode reader or awireless receiver, coupled to the microcontroller 380 via a terminal 388on the control board 382. This will enable the microcontroller 380 todetermine whether the keyed authorization code is associated with thefirst group of valid authorization codes 140 or the second group ofvalid authorization codes 266 based on the input device used. Forexample, the microcontroller 380 could “assume” that an authorizationcode received from the keypad 122 is associated with the first group ofvalid authorization codes 140 and that an authorization code receivedfrom the additional input device 386 is associated with the second groupof valid authorization codes 266.

The microcontroller 380 is configured such that, if it determines thatthe keyed authorization code is associated with the first group of validauthorization codes 140, it will communicate with the first data storage136 to compare the keyed authorization code to the first group of validauthorization codes. If the keyed authorization code matches one of thevalid authorization codes in the first group of valid authorizationcodes, the microcontroller 380 will instruct the car wash controller 120to initiate a car wash according to the matched authorization code.Similarly, the microcontroller 380 is further configured such that, ifit determines that the keyed authorization code is associated with thesecond group of valid authorization codes 266, it will communicate withthe second data storage 264 to compare the keyed authorization code tothe second group of valid authorization codes 266. If the keyedauthorization code matches one of the valid authorization codes in thesecond group of valid authorization codes 266, the microcontroller 380will instruct the car wash controller 120 to initiate a car washaccording to the matched authorization code.

The respective control interfaces 300 for a plurality of geographicallydispersed car washes 102 may be coupled to a single second data storage264.

Reference is now made to FIG. 4, which shows another exemplary controlinterface 400 for a car wash (details of the car wash 102 are againomitted for simplicity of illustration). The control interface 400 shownin FIG. 4 is similar to the control interface 300 shown in FIG. 3 exceptthat instead of replacing or reprogramming the (first) microcontroller124 in the control interface 100 (FIG. 1), the control interface 100 ismodified by electronically interposing a second microcontroller 490between the keypad 122 and the first microcontroller 124.

Thus, in FIG. 4 the first microcontroller 124 is coupled to the car washcontroller 120 by way of the terminals 130 on the control board 126, andis further coupled to the first data storage 136 via a correspondingterminal 138 on the control board 126. However, the firstmicrocontroller 124 is not directly coupled to the keypad 122. Thesecond microcontroller 490 is coupled to circuitry on its own controlboard 426, and is coupled to the keypad 122 and the display 132 by wayof respective terminals 428, 434 on the control board 426. Similarly tothe arrangement shown in FIG. 2, the second microcontroller 490 iscoupled to the car wash controller 120 by control terminals 430 on thesecond control board 426 being coupled to the control terminals 130 onthe first control board 126 in parallel with the first microcontroller124. The first microcontroller 124 continues to be coupled to the carwash controller 120 by way of terminals 130 on its control board 126 andto the first data storage 136 via a corresponding terminal 138 on thefirst control board 126. The first data storage 136 forms part of thePOS system and stores a first group of valid authorization codes 140,which are local authorization codes.

The second microcontroller 490 is coupled, by way of terminal 438 andcomputer network(s) 268, to the second data storage 264 containing thesecond group of valid authorization codes 266; the second data storage264 is associated with the online sales system 270 and the second groupof valid authorization codes 266 are remote or global authorizationcodes. The second microcontroller 490 is also coupled to the firstmicrocontroller 124. In particular, a terminal 492 on the control board426 for the second microcontroller 490 is coupled to the terminal 128 onthe control board 126 that would ordinarily be coupled to the keypad 122but is disconnected therefrom. From the perspective of the firstmicrocontroller 124, signals received from the second microcontroller490 via the terminal 128 are perceived and treated as if they weresignals from the keypad 122. In other words, the first microcontroller124 does not “know” that it is receiving signals from the secondmicrocontroller 490 instead of the keypad 122 to which it was originallyconnected.

The second microcontroller 490 is configured to receive a keyedauthorization code from the keypad 122 and determine whether the keyedauthorization code is associated with the first group of validauthorization codes 140 (the local authorization codes) or the secondgroup of valid authorization codes 266 (the remote or globalauthorization codes). Preferably, the second microcontroller 490 isconfigured to determine whether the keyed authorization code isassociated with the first group of valid authorization codes 140 or thesecond group of valid authorization codes 266 according to the format ofthe keyed authorization code or from an indicator signal as describedabove, although other suitable approaches may also be used.

If the second microcontroller 490 determines that the keyedauthorization code is associated with the first group of validauthorization codes 140, i.e. that the keyed authorization code is alocal authorization code, the second microcontroller 490 will transmitthe keyed authorization code to the first microcontroller 124 via theterminals 492 and 128. The first microcontroller 124 will treat thekeyed authorization code received via the terminal 128 as if it camefrom the keypad 122. Thus, responsive to receiving the keyedauthorization code from the second microcontroller 490, the firstmicrocontroller 124 will communicate with the first data storage 136 tocompare the keyed authorization code to the first group of validauthorization codes 140. If the keyed authorization code matches one ofthe valid authorization codes in the first group of valid authorizationcodes 140, the first microcontroller 124 will instruct the car washcontroller 120 to initiate a car wash according to the matchedauthorization code.

If the second microcontroller 490 determines that the keyedauthorization code is associated with the second group of validauthorization codes 266, i.e. that the keyed authorization code is aremote or global authorization code, the second microcontroller 490 willcommunicate with the second data storage 262 to compare the keyedauthorization code to the second group of valid authorization codes 266.If the keyed authorization code matches one of the valid authorizationcodes in the second group of valid authorization codes 266, the secondmicrocontroller 260 will instruct the car wash controller 120 toinitiate a car wash according to the matched one of the validauthorization codes in the second group of valid authorization codes266. The respective control interfaces 400 for a plurality ofgeographically dispersed car washes 102 may be coupled to a singlesecond data storage 264.

Reference has been made to microcontrollers 124, 260, 380 and 490. Whileeach of these was treated as a single individual microcontroller forsimplicity of illustration and explanation, one skilled in the art willappreciate that microcontrollers 124, 260, 380 and 490 may in practiceeach comprise one or more physical microcontrollers operating incooperation. Similarly, while control boards 126, 226, 382, 426 areshown schematically as single control boards, each may, in practice,comprise a plurality of control boards. In some embodiments, the controlboards 226, 382 and 426 may be, for example, Raspberry Pi B+ controlboards, available from, for example, RS Components Ltd. having anaddress at Birchington Road, Corby, Northants NN17 9RS U.K. and hencethe microcontrollers 260, 380 and 490 may each be a model BCM2835 SoC(“System on a Chip”) offered by Broadcom Limited, having an address at1320 Ridder Park Drive, San Jose, Calif. 95131 U.S.A.

The exemplary apparatus described above implement methods forcontrolling a car wash.

Reference is now made to FIG. 5, which shows, in flow chart form, afirst exemplary method 500 for controlling a car wash. At step 502, themethod 500 receives an authorization code, and at step 504 the method500 determines whether the authorization code is associated with a firstgroup of valid authorization codes stored in a first storage or a secondgroup of valid authorization codes stored in a second storage. Step 504may, for example, be carried out by using the a format of theauthorization code to determine whether the authorization code isassociated with the first group of valid authorization codes stored orthe second group of valid authorization codes, or based on an inputdevice via which the authorization code was received, or based on anindicator signal.

At step 506, responsive to a determination at step 504 that theauthorization code is associated with the first group of validauthorization codes, the method 500 compares the authorization code tothe first group of valid authorization codes. At step 508, responsive tothe authorization code matching one of the valid authorization codes inthe first group of valid authorization codes, the method 500 initiatesthe car wash according to the matched one of the valid authorizationcodes in the first group of valid authorization codes, after which themethod ends. If step 506 determines that the authorization code does notmatch any of the valid authorization codes in the first group of validauthorization codes, the method 500 ends. At step 510, responsive to adetermination at step 504 that the authorization code is associated withthe second group of valid authorization codes, the method 500 comparesthe authorization code to the second group of valid authorization codes.At step 512, responsive to the authorization code matching one of thevalid authorization codes in the second group of valid authorizationcodes, the method 500 initiates the car wash according to the matchedone of the valid authorization codes in the second group of validauthorization codes, after which the method ends. If the methoddetermines at step 510 the authorization code does not match any of thevalid authorization codes in the second group of valid authorizationcodes, the method 500 ends.

FIG. 6 shows, in flow chart form, a second exemplary method 600 forcontrolling a car wash. At step 602, the method 600 receives anauthorization code, and at step 606 the method 600 compares theauthorization code to a first group of valid authorization codes storedin a first storage. At step 608, responsive to the authorization codematching one of the valid authorization codes in the first group ofvalid authorization codes at step 606, the method 600 initiates the carwash according to the matched one of the valid authorization codes inthe first group of valid authorization codes, after which the method 600ends. At step 610, responsive to a determination at step 606 that theauthorization code fails to match any of the valid authorization codesin the first group of valid authorization codes, the method 600 comparesthe authorization code to the second group of valid authorization codes.At step 612, responsive to the authorization code matching one of thevalid authorization codes in the second group of valid authorizationcodes, the method 600 initiates the car wash according to the matchedone of the valid authorization codes in the second group of validauthorization codes, after which the method 600 ends. If the method 600determines at step 610 that the authorization code fails to match any ofthe valid authorization codes in the second group of valid authorizationcodes, the method 600 ends.

Although the above apparatus, systems and methods have been described inthe context of car wash services because they are considered to haveparticular application to that industry, they can be applied to otheraccess control applications where access may be purchased or otherwiseobtained either locally or remotely. For example, apparatus, systems andmethods as described above could be applied to access-controlled parkingfacilities to operate access control barriers. Other suitableapplications include public laundry facilities, theme park rides, eventadmissions (e.g. sporting events, concerts, museum access) and publictransit (e.g. subway turnstiles).

As can be seen from the above description, the control interfaces andmethods described herein represent significantly more than merely usingcategories to organize, store and transmit information and organizinginformation through mathematical correlations. The control interfacesand methods are in fact an improvement to the field of code-based accesscontrol technology, as they provide a compact and efficient method forenabling the use of authorization codes from multiple sources withouthaving to directly integrate those sources. The control interfaces andmethods described herein are also versatile, as they allow authorizationcodes from a single source to be used at a plurality of differentgeographically dispersed sites having different types of local POSsystems that are not necessarily compatible with one another, whilestill permitting use of authorization codes generated by the local POSat each site. Moreover, the technology is applied by using a particularmachine, namely an access control system. As such, the controlinterfaces and methods described herein are confined to code-basedaccess control applications.

Several embodiments have been described by way of example. It will beapparent to persons skilled in the art that a number of variations andmodifications can be made without departing from the scope of theclaims.

What is claimed is:
 1. A control interface for a car wash, comprising: acar wash controller coupled to a plurality of car wash elements forcontrolling the car wash elements; a keypad; a first microcontroller;the first microcontroller coupled to the keypad; the firstmicrocontroller coupled to the car wash controller; the firstmicrocontroller coupled to a first data storage containing a first groupof valid authorization codes; the first microcontroller configured to:receive a keyed authorization code from the keypad; communicate with thefirst data storage to compare the keyed authorization code to the firstgroup of valid authorization codes; and responsive to the keyedauthorization code matching one of the valid authorization codes in thefirst group of valid authorization codes, instruct the car washcontroller to initiate a car wash according to the matched one of thevalid authorization codes in the first group of valid authorizationcodes; an additional input device; a second microcontroller coupled tothe additional input device; the second microcontroller coupled to thecar wash controller; the second microcontroller coupled to a second datastorage containing a second group of valid authorization codes; thesecond microcontroller configured to: receive an authorization code fromthe additional input device; communicate with the second data storage tocompare the received authorization code to the second group of validauthorization codes; and responsive to the received authorization codematching one of the valid authorization codes in the second group ofvalid authorization codes, instruct the car wash controller to initiatea car wash according to the matched one of the valid authorization codesin the second group of valid authorization codes.
 2. The controlinterface of claim 1, wherein the additional input device is a secondkeypad.
 3. The control interface of claim 1, wherein the additionalinput device is a barcode reader.
 4. The control interface of claim 1,wherein the additional input device is a wireless receiver for receivingwireless communication signals.
 5. The control interface of claim 1,wherein the second microcontroller is coupled directly to the car washcontroller.
 6. The control interface of claim 1, wherein the secondmicrocontroller is coupled indirectly to the car wash controller.
 7. Thecontrol interface of claim 6, wherein the second microcontroller iscoupled indirectly to the car wash controller by the secondmicrocontroller being coupled to the first microcontroller.
 8. Thecontrol interface of claim 6, wherein: the first microcontroller iscoupled to the car wash controller indirectly by the firstmicrocontroller being coupled to control terminals on a control board;the control board being coupled to the car wash controller; and thesecond microcontroller is coupled to the car wash controller by beingcoupled to the control terminals on the control board in parallel withthe first microcontroller.
 9. A control interface for a car wash,comprising: a car wash controller coupled to a plurality of car washelements for controlling the car wash elements; a keypad; a firstmicrocontroller; the first microcontroller coupled to the keypad; thefirst microcontroller coupled to the car wash controller; the firstmicrocontroller coupled to a first data storage containing a first groupof valid authorization codes; the first microcontroller coupled to asecond data storage containing a second group of valid authorizationcodes; the first microcontroller configured to: receive a keyedauthorization code from the keypad; determine whether the keyedauthorization code is associated with the first group of validauthorization codes or the second group of valid authorization codes;responsive to a determination that the keyed authorization code isassociated with the first group of valid authorization codes:communicate with the first data storage to compare the keyedauthorization code to the first group of valid authorization codes; andresponsive to the keyed authorization code matching one of the validauthorization codes in the first group of valid authorization codes,instruct the car wash controller to initiate a car wash according to thematched one of the valid authorization codes in the first group of validauthorization codes.
 10. The control interface of claim 9, wherein thefirst microcontroller is further configured to, responsive to adetermination that the keyed authorization code is associated with thesecond group of valid authorization codes: communicate with the seconddata storage to compare the keyed authorization code to the second groupof valid authorization codes; and responsive to the keyed authorizationcode matching one of the valid authorization codes in the second groupof valid authorization codes, instruct the car wash controller toinitiate a car wash according to the matched one of the validauthorization codes in the second group of valid authorization codes.11. The control interface of claim 9, wherein: the first microcontrolleris coupled to a second microcontroller; the second microcontroller iscoupled to the car wash controller; the first microcontroller is furtherconfigured to, responsive to a determination that the keyedauthorization code is associated with the second group of validauthorization codes, transmit the keyed authorization code to the secondmicrocontroller; and the second microcontroller is configured to,responsive to receiving the keyed authorization code from the firstmicrocontroller: communicate with the second data storage to compare thekeyed authorization code to the second group of valid authorizationcodes; and responsive to the keyed authorization code matching one ofthe valid authorization codes in the second group of valid authorizationcodes, instruct the car wash controller to initiate a car wash accordingto the matched one of the valid authorization codes in the second groupof valid authorization codes.
 12. The control interface of claim 11,wherein the determination that the keyed authorization code isassociated with the second group of valid authorization codes resultsfrom the keyed authorization code failing to match any of the validauthorization codes in the first group of valid authorization codes 13.The control interface of claim 9, wherein the first microcontroller isconfigured to determine whether the keyed authorization code isassociated with the first group of valid authorization codes or thesecond group of valid authorization codes according to a format of thekeyed authorization code.
 14. The control interface of claim 9, whereinthe first microcontroller is configured to determine whether the keyedauthorization code is associated with the first group of validauthorization codes or the second group of valid authorization codesaccording to an indicator signal.
 15. The control interface of claim 9,further comprising an additional input device coupled to themicrocontroller, wherein the first microcontroller is configured todetermine whether the keyed authorization code is associated with thefirst group of valid authorization codes or the second group of validauthorization codes based on the input device used wherein anauthorization code received from the keypad is associated with the firstgroup of valid authorization codes and an authorization code receivedfrom the additional input device is associated with the second group ofvalid authorization codes.
 16. A method for controlling a car wash,comprising: receiving an authorization code; determining whether theauthorization code is associated with a first group of validauthorization codes stored in a first storage or a second group of validauthorization codes stored in a second storage; responsive to adetermination that the authorization code is associated with the firstgroup of valid authorization codes: comparing the authorization code tothe first group of valid authorization codes; and responsive to theauthorization code matching one of the valid authorization codes in thefirst group of valid authorization codes, initiating the car washaccording to the matched one of the valid authorization codes in thefirst group of valid authorization codes; responsive to a determinationthat the authorization code is associated with the second group of validauthorization codes: comparing the authorization code to the secondgroup of valid authorization codes; and responsive to the authorizationcode matching one of the valid authorization codes in the second groupof valid authorization codes, initiating the car wash according to thematched one of the valid authorization codes in the second group ofvalid authorization codes.
 17. The method of claim 16, whereindetermining whether the authorization code is associated with a firstgroup of valid authorization codes stored in a first storage or a secondgroup of valid authorization codes stored in a second storage comprisesdetermining a format of the authorization code.
 18. The method of claim16, wherein determining whether the authorization code is associatedwith a first group of valid authorization codes stored in a firststorage or a second group of valid authorization codes stored in asecond storage is based on an input device via which the authorizationcode was received.
 19. A method for controlling a car wash, comprising:receiving an authorization code; comparing the authorization code to thefirst group of valid authorization codes stored in a first storage;responsive to the authorization code matching one of the validauthorization codes in the first group of valid authorization codes,initiating the car wash according to the matched one of the validauthorization codes in the first group of valid authorization codes; andresponsive to a determination that the authorization code fails to matchany of the valid authorization codes in the first group of validauthorization codes: comparing the authorization code to the secondgroup of valid authorization codes; and responsive to the authorizationcode matching one of the valid authorization codes in the second groupof valid authorization codes, initiating the car wash according to thematched one of the valid authorization codes in the second group ofvalid authorization codes.